home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Tools 5
/
Amiga Tools 5.iso
/
grafik
/
3d & render tools
/
irit
/
www
/
home
/
technion.inf
< prev
next >
Wrap
Text File
|
1996-07-16
|
7KB
|
171 lines
IRIT at the CS department, TECHNION, IIT
----------------------------------------
The IRIT solid modeller is installed at the Technion as /usr/local/irit
on virtually all systems.
Several types of workstations are actively supported and these
are subdirectories of /usr/local/irit. You can find under
/usr/local/irit directories for indy (SGI Irix 5.0.x), sgi4d (SGI Irit
4.0.xx), sun4 (Sun SPARC) etc. In src directory the complete source tree
of the solid modeller can be found. In addition, you can find under
/usr/local/irit two more important directories:
data - contains a large set of models in the IRIT data file formats.
docs - the Irit's Manual(s) in text, Postscript, and Latex formats.
Each of the indy/sgi4d/sun4 trees are a complete copy (actually
symbolic links to) the src directory. The executables on each tree are
built and saved under the appropriate name in the bin subdir. That is,
the executables (==binaries) for sun SPARC can be found in
/usr/local/irit/sun4/bin. Object files (.o files) are likely to be removed
from the trees to preserve space but you can find the different libraries
under the lib subdir. That is IRIT libraries for indy can be found in
/usr/local/irit/indy/lib.
Setting up IRIT
---------------
Add the following to .cshrc:
set path = ($path /usr/local/irit/xxxx/bin)
setenv IRIT_PATH /usr/local/irit/xxxx/bin/
setenv IRIT_DISPLAY "x11drvs -s-"
where xxxx is either sgi4d, indy, or sun4 according to the machine type
you use. You might be able to use different display devices (than x11drvs)
depending upon the machine type you use. Inspect the $IRIT_PATH directory
for other possible devices.
If you are using the emacs editor (if you dont, you better start because
it is much more simple to use IRIT within emacs) add the following to your
~/.emacs (and then exit and reenter emacs to activate):
; Load IRIT package
(condition-case ()
(load (expand-file-name "/usr/local/irit/src/irit/irit"))
(error (message "Can't load irit.el")))
The irit[.el] file defines the following new emacs functions for you.
Once a file with the type '.irt' is loaded, emacs shifts into IRIT mode
with the following new three commands:
M-e - Executes one line of IRIT solid modling command upto the next
semicolor (';'). The M-e binds send-line-to-irit.
M-r - Executes a whole regions of IRIT command between the cursor and
marks positions. The M-r binds send-region-to-irit.
M-s - Sends one IRIT command from the input buffer to IRIT.
M-s binds send-mini-buffer-to-irit.
It is very convenient to use IRIT within emacs to create new models, and
it is the recommended way.
In addition, while editing a C source file, the function
make-irit-c-function - will request a function prototype and will
expand it into the coding style comment format that is
required in IRIT.
The source tree structure
-------------------------
The src subdir (and the sgi4d/indy/sun4 which are symbolic link duplicates)
contains the full set of C sources for the IRIT solid modeller. The solid
modeller has several libraries, each kept in a separated directory:
amigalib - amiga specific library (not really useful here).
bool_lib - Boolean operations between polyhedra models.
cagd_lib - the library that deals with freeform Bezier and NURB curves
and surfaces.
geom_lib - general geometry is handled here, such as bounding boxes,
convexity of polygons, etc.
misc_lib - miscellaneous staff - reading configuration files, parsing command
line arguments, malloc related, low level attributes, etc.
prsr_lib - handles reading and writing geometrical data from/to files.
Also handles high level (object) attributes and allocation and
IPC between the server (IRIT) and the display devices.
symb_lib - symbolic manipulation of freeform curves and surfaces. This
includes sum and product of scalar curves and surfaces, curvature
analysis, offsets, morphing of surfaces, prisa (layout), etc.
trim_lib - trimmed surface's library (early development).
triv_lib - Freefrom trivariate functions library.
xtra_lib - tools that were not written by us, yet they are public domain and
we use them in IRIT. So far it includes an SVD solver from NR.
circlink - not really a library, but a single object file that forces
linkage that resolves circularities in libraries.
In addition there are several directories that include end applications
that use these libraries:
grapdrvs - the display devices. There are several display devices
that might be useful for you:
x11drvs - Vanilla X11 display device.
xmtdrvs - Motif/X11 display device. Renders x11drvs almost obsolete.
xgldrvs - SGI gl display device.
irit - the solid modeller. Mainly the interpreter and interface to all
the geometric manipulation that is done in other libraries.
This directory builds the solid modeller.
scripts - contains a whole set ofirit script examples (*.irt files).
illustrt - a line illustration tool.
poly3d-h - a hidden line removal algorithm.
poly3d-r - a simple scan converter (obsolete).
iritfltr - contains a set of filters to/from the IRIT data file format to
other formats/ray tracers/postscript etc.
contrib - this directory contains a whole subtree of unsupported and related
staff. Browse at your own risk.
Compiling with IRIT
-------------------
In order to compile a program that uses IRIT you should do the
following. Copy the file /usr/local/irit/src/makeflag.unx to the
current directory. At the beginning of your makefile add the line:
include makeflag.unx
The makeflag.unx defines a new rule to compile .c files to .o files
with the "correct" flags. You do have to select these "correct" flags
in the makeflag.unx by editing and removing the '#' comments from the
appropriate selected machine. For example to use the makefile under
SGI Irit 4.0 the following must be uncommented:
#
# Flags for SGI 4d, Irix 4.0, using GL or X11:
#
CC = cc -fullwarn -woff 302,303,269,927 -xansi
DFLAGS = -DFUNCPROTO -DSTRICMP -DSGINAP -DRAND48 -DTIMES -D__UNIX__ -D__GL__ -D__X11__
# CFLAGS = -O $(DFLAGS) -Olimit 1000 -Wf,-XNh10000 -Wf,-XNd10000 -G 4
CFLAGS = -g $(DFLAGS) -Olimit 1000 -Wf,-XNh10000 -Wf,-XNd10000 -G 4
MORELIBS = -lbsd
GRAPX11LIBS = -lX11
GRAPXMTLIBS = -lXm_s -lXt_s -lX11 -lgl_s
GRAPGLLIBS = -lgl_s
GRAPDRVS = xgldrvs xgladap x11drvs xmtdrvs nuldrvs
Note that they are two options for CFLAGS, optimized (-O) and
debugging (-g).
Your makefile can be very simple hereafter. For example the makefile
of the poly3d-h in the IRIT itself, looks like:
#
# Makefile for the POLY3D-H hidden line remover.
#
include makeflag.unx
OBJS = out-edge.o poly3d-h.o prepdata.o
poly3d-h: $(OBJS)
$(CC) $(CFLAGS) -o poly3d-h $(OBJS) $(LIBS) -lm $(MORELIBS)
install: poly3d-h
mv -f poly3d-h $(BIN_DIR)
cp poly3d-h.cfg $(BIN_DIR)
# Dependencies starts here - do not touch, generated automatically.
out-edge.o: program.h
poly3d-h.o: program.h
prepdata.o: program.h